#!/bin/bash 
# 
# 常规方式安装雷鸣云客服系统，比如可以在阿里云、腾讯云、等别的云服务上进行安装本系统。在 CentOS 7.4 (没7.4的话7.6等应该也行) 上的安装命令:  
# wget https://gitee.com/HuaweiCloudDeveloper/huaweicloud-solution-build-kefu-im/raw/master/Shell/normal_install.sh -O install.sh && chmod -R 777 install.sh && sh ./install.sh
# 安装完成后，会将一些账号密码信息，如数据库的，保存到 /root/account.txt 中
# 注意socket使用8081端口，防火墙要打开8081端口
#


# 需要定义服务器ip，这是必须的
# 当前服务器的ip
export ecsip=123.123.123.123





# ecsip=`java -cp ~/properties.jar Properties -path=/root/install.properties -get ecs.ip`
# mysql安装后赋予root的密码。默认自动生成，你也可以自己设置，密码需要大写+小写+数字+特殊字符，这四种同时存在。
export mysql_pwd=`openssl rand -base64 12`@wm
# mysql 安装的云客服系统在数据库的名字，一般默认即可
export db_name=kefu
# 附件访问所使用的域名，如果是不使用云存储，这个可直接用服务器本身的ip
#export cdndomain=`java -cp ~/properties.jar Properties -path=/root/install.properties -get cdndomain`
export cdndomain=http://$ecsip/



# 加载资源文件下载路径
cd ~
wget https://gitee.com/HuaweiCloudDeveloper/huaweicloud-solution-build-wangmarketcms/raw/master/shell/file.sh -O file.sh
chmod -R 777 file.sh
source ./file.sh
echo "加载资源文件下载路径完毕"


##### JDK、Tomcat等安装开始####
wget https://gitee.com/HuaweiCloudDeveloper/huaweicloud-solution-build-wangmarketcms/raw/master/shell/tomcat.sh -O tomcat.sh
chmod -R 777 file.sh
source ./tomcat.sh
echo "加载tomcat.sh完毕"
##### JDK、Tomcat安装结束####


####### Redis #####
wget https://gitee.com/HuaweiCloudDeveloper/huaweicloud-solution-build-kefu-im/raw/master/Shell/redis.sh -O redis.sh
chmod -R 777 redis.sh
source ./redis.sh
echo "加载 redis.sh 完毕"
##### redis end #########


######elasticsearch########
wget https://gitee.com/HuaweiCloudDeveloper/huaweicloud-solution-build-kefu-im/raw/master/shell/elasticsearch.sh -O elasticsearch.sh
chmod -R 777 elasticsearch.sh
source ./elasticsearch.sh
echo "加载elasticsearch.sh完毕"
######elasticsearch end############

#### Mysql ####
# 安装mysql
wget https://gitee.com/HuaweiCloudDeveloper/huaweicloud-solution-build-wangmarketcms/raw/master/shell/mysql.sh -O mysql.sh
chmod -R 777 mysql.sh
source ./mysql.sh
echo "加载mysql.sh完毕"
####### Mysql end #######


#### 开始云客服应用包安装 ####
# 进入tomcat运行安装目录
cd /mnt/tomcat8/webapps/ROOT/
# 清空掉ROOT下的文件
rm -rf ../ROOT/*
# 下载最新客服应用
wget $kefuDownUrl -O kefu.zip
# 解压
unzip kefu.zip
rm -rf kefu.zip
echo "kefu应用部署完毕"
#########end###########


############# 创建yunkefu数据库并导入sql文件开始 #################
# Mysql安装的一些变量设置等。wangmarket数据库是特定的，只有mysql安装在本身服务器才有的
# 创建 kefu 数据库
mysql -uroot -p$mysql_pwd -e "create database IF NOT EXISTS ${db_name}"
# 导入sql
cd /root
wget $kefuSqlDownUrl -O kefu.sql
mysql -uroot -p$mysql_pwd $db_name -e "source /root/kefu.sql"
sleep 3
############# 导入sql文件结束 #################


################ 注意，下面这些是当前特有的 ##################
#
# 自动修改wangmarket中的system数据表中的数据
#
# 配置安装域名相关-cdn附件域名，获取的格式如 kefu0001.xxxxxx.com
# cdndomain=`java -cp ~/properties.jar Properties -path=/root/install.properties -get cdndomain`
mysql -uroot -p$mysql_pwd $db_name -e "UPDATE system SET value='https://$cdndomain/' WHERE name = 'ATTACHMENT_FILE_URL'"
# 禁止通过 /install/index.do 在安装系统
mysql -uroot -p$mysql_pwd $db_name -e "UPDATE system SET value='false' WHERE name = 'IW_AUTO_INSTALL_USE'"


#
# 修改配置文件中的一些配置
#
# 开启elasticsearch
java -cp ~/properties.jar Properties -path=/mnt/tomcat8/webapps/ROOT/WEB-INF/classes/application.properties -set wm.elasticsearch.hostname=127.0.0.1
# 开启redis
java -cp ~/properties.jar Properties -path=/mnt/tomcat8/webapps/ROOT/WEB-INF/classes/application.properties -set spring.redis.host=127.0.0.1
# 连接的账密
java -cp ~/properties.jar Properties -path=/mnt/tomcat8/webapps/ROOT/WEB-INF/classes/application.properties -set database.name=kefu
java -cp ~/properties.jar Properties -path=/mnt/tomcat8/webapps/ROOT/WEB-INF/classes/application.properties -set database.ip=127.0.0.1
java -cp ~/properties.jar Properties -path=/mnt/tomcat8/webapps/ROOT/WEB-INF/classes/application.properties -set spring.datasource.username=root
java -cp ~/properties.jar Properties -path=/mnt/tomcat8/webapps/ROOT/WEB-INF/classes/application.properties -set spring.datasource.password=$mysql_pwd
# 修改数据库连接为mysql方式，而非默认的sqlite
sed -i "s#^spring.jpa.database-platform=.*# #g" /mnt/tomcat8/webapps/ROOT/WEB-INF/classes/application.properties
sed -i "s#^spring.datasource.driver-class-name=.*#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver#g" /mnt/tomcat8/webapps/ROOT/WEB-INF/classes/application.properties
sed -i "s#^spring.datasource.url=.*#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/kefu\?useUnicode=true\&characterEncoding=utf-8#g" /mnt/tomcat8/webapps/ROOT/WEB-INF/classes/application.properties
# 修改kefu.properties
# ecsip=`java -cp ~/properties.jar Properties -path=/root/install.properties -get ecs.ip`
java -cp ~/properties.jar Properties -path=/mnt/tomcat8/webapps/ROOT/WEB-INF/classes/kefu.properties -set kefu.api=http://$ecsip
java -cp ~/properties.jar Properties -path=/mnt/tomcat8/webapps/ROOT/WEB-INF/classes/kefu.properties -set kefu.socket=ws://$ecsip:8081

# 输出mysql配置信息到/root/account.txt
ecspassword=`java -cp ~/properties.jar Properties -path=/root/install.properties -get ecs.password`
# 配置将文件地址
txt_path=/root/account.txt
touch $txt_path
echo '======= mysql5.7 ======' >> $txt_path
echo '数据库名称:'$db_name >> $txt_path
echo '登录用户名:root' >> $txt_path
echo '登录的密码:'$mysql_pwd >> $txt_path


# 删除 file.sh 、mysql.sh 等通用模块
rm -rf /root/file.sh
rm -rf /root/mysql.sh
rm -rf /root/tomcat.sh

systemctl stop firewalld.service
# 启动tomcat
echo "启动tomcat"
/mnt/tomcat8/bin/startup.sh
#看启动日志
#echo "看启动日志"
echo "自动部署完成，您可以正常使用了！打开浏览器，访问ip即可使用"